import Vue from 'vue'
import App from './App.vue'
import router from './router'
import  store from './store'

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

import VueParticles from 'vue-particles'
import {initMenu} from "./utils/menus";
import {postRequest} from "./utils/api";
import {putRequest} from "./utils/api";
import {getRequest} from "./utils/api";
import {deleteRequest} from "./utils/api";

Vue.config.productionTip = false
Vue.use(ElementUI);
Vue.use(VueParticles)
//插件
Vue.prototype.postRequest = postRequest;
Vue.prototype.putRequest = putRequest;
Vue.prototype.getRequest = getRequest;
Vue.prototype.deleteRequest = deleteRequest;

router.beforeEach((to, from, next)=>{
    //获取token
    if (window.sessionStorage.getItem('tokenStr')){
        initMenu(router,store);
        //判断用户信息是否存在
        if (!window.sessionStorage.getItem('user')){
            return getRequest('/userinfo').then(res=>{
                if (res){
                    //存入用户信息  sessionStorage只能存入字符串   需要转换成字符串
                    window.sessionStorage.setItem('user',JSON.stringify(res));
                    next();
                }
            })
        }
        next();
    }else{
        if (to.path === '/') {
            next();
        } else {
            next('/?redirect=' + to.path);
        }

    }
})

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')
